#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
/*
    1. 孤儿进程：如果父进程先于子进程退出，则子进程成为孤儿进程，此时将自动被PID为1的进程（即init）接管。孤
儿进程退出后，它的清理工作有祖先进程init自动处理。但在init进程清理子进程之前，它一直消耗系统
的资源，所以要尽量避免。
    2. 僵尸进程：如果子进程先退出，系统不会自动清理掉子进程的环境，而必须由父进程调用wait或waitpid函数来完成
清理工作，如果父进程不做清理工作，则已经退出的子进程将成为僵尸进程(defunct),在系统中如果存
在的僵尸（zombie）进程过多，将会影响系统的性能，所以必须对僵尸进程进行处理。
    3. 守护进程：没有控制终端与之相连的进程。

*/

/*
    写一个僵尸进程
*/
int main()
{
    pid_t pid = fork();
    if( pid == 0 )
    {
        exit(10);
    }
    else
    {
        // 要是不想出现僵尸进程，就让父进程等待子进程的退出
        // wait(NULL); //NULL表示等待所有进程
        sleep(10);
    }
}